**************************************************************************************************
*** Stata syntax for analyses of the paper "Rumination and Political Engagement" (26 Nov 2021) ***
**************************************************************************************************

* Authors: Identification removed for peer-review process *


* Open Stata data file "Rumination_data.dta"


* TABLE 1: Descriptive statistics political variables

sum polatt ipoleff epoleff trust covidhandle7r voted


* TABLE 2: Bivariate analyses

ttest polatt_0to1, by(broodingYN)
ttest ipoleff_0to1, by(broodingYN)
ttest epoleff_0to1, by(broodingYN)
ttest trust_0to1, by(broodingYN)
ttest covidhandle_0to1, by(broodingYN)
tab voted broodingYN , col chi2



* FIGURE 1: Coefficient plots (sociodemographic controls)
			
reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M6

coefplot M1, bylabel(Political Attention) ///
            || M2, bylabel(Internal Political Efficacy) ///
			|| M3, bylabel(External Political Efficacy) ///
			|| M4, bylabel(Trust in Government) ///
			|| M5, bylabel(Government Satisfaction) ///
			|| M6, bylabel(Voting) ///
            ||, drop(_cons) xline(0) coeflabels(brooding_0to1 = "Brooding" ///
			|| sex = "Female" age="Age" university="University" british="British" ///
			|| socialgrade4_1="Social Grade AB" socialgrade4_2="Social Grade C1" socialgrade4_3="Social Grade C2" socialgrade4_4="Social Grade DE") byopts(xrescale) 
			
drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 
		


* FIGURE 2: Coefficient plots (socioeconomic controls + party identification)

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M6

coefplot M1, bylabel(Political Attention) ///
            || M2, bylabel(Internal Political Efficacy) ///
			|| M3, bylabel(External Political Efficacy) ///
			|| M4, bylabel(Trust in Government) ///
			|| M5, bylabel(Government Satisfaction) ///
			|| M6, bylabel(Voting) ///
            ||, drop(_cons) xline(0) coeflabels(brooding_0to1 = "Brooding" ///
			|| sex = "Female" age="Age" university="University" british="British" ///
			|| socialgrade4_1="Social Grade AB" socialgrade4_2="Social Grade C1" socialgrade4_3="Social Grade C2" socialgrade4_4="Social Grade DE" ///
			|| pidcon="PID Conservative" pidlab="PID Labour" pidlibdem="PID LibDem" pidothers="PID others") byopts(xrescale) 
			
drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 



* FIGURE 3: Coefficient plots (socioeconomic controls + party identification + depression)

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M6

coefplot M1, bylabel(Political Attention) ///
            || M2, bylabel(Internal Political Efficacy) ///
			|| M3, bylabel(External Political Efficacy) ///
			|| M4, bylabel(Trust in Government) ///
			|| M5, bylabel(Government Satisfaction) ///
			|| M6, bylabel(Voting) ///
            ||, drop(_cons) xline(0) coeflabels(brooding_0to1 = "Brooding" ///
			|| sex = "Female" age="Age" university="University" british="British" ///
			|| socialgrade4_1="Social Grade AB" socialgrade4_2="Social Grade C1" socialgrade4_3="Social Grade C2" socialgrade4_4="Social Grade DE" ///
			|| pidcon="PID Conservative" pidlab="PID Labour" pidlibdem="PID LibDem" pidothers="PID Others" cesd_0to1="Depression") byopts(xrescale) 
			
drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 


* Foonote on correlation between depressive symptoms and brooding (r=0.64)
pwcorr brooding_0to1 cesd_0to1, sig

* Cronbach's alpha for rumination (a=0.87)
alpha brooding1 brooding2 brooding3 brooding4 brooding5


*** ONLINE APPENDIX ***

* TABLE S1: summary statistics of control variables

asdoc sum sex age university british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 nopid pidcon pidlab pidlibdem pidothers cesd_0to1


* TABLE S2: correlations between brooding and political outcomes

asdoc pwcorr brooding_0to1 polatt_0to1 ipoleff_0to1 epoleff_0to1 trust_0to1 covidhandle_0to1 voted , sig


* TABLE S3: Analyses from Figure 1

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 [pweight=weight]
estimates store M6
outreg2 [M1 M2 M3 M4 M5 M6] using "XXX" 

drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 


* TABLE S4: Analyses from Figure 2

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M6
outreg2 [M1 M2 M3 M4 M5 M6] using "XXX" 

drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 


* TABLE S5: Analyses from Figure 3

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 [pweight=weight]
estimates store M6
outreg2 [M1 M2 M3 M4 M5 M6] using "XXX" 

drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6 


* TABLE S6: Analyses from Figure 3 without weights

reg polatt_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M1
reg ipoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M2
reg epoleff_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M3
reg trust_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M4
reg covidhandle_0to1 brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M5
logit voted brooding_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers cesd_0to1 
estimates store M6
outreg2 [M1 M2 M3 M4 M5 M6] using "XXX" 

drop _est_M1 _est_M2 _est_M3 _est_M4 _est_M5 _est_M6


* TABLE S7: Interaction between depression and brooding 
logit voted c.brooding_0to1##c.cesd_0to1 i.sex age i.university i.british socialgrade4_1 socialgrade4_2 socialgrade4_3 socialgrade4_4 pidcon pidlab pidlibdem pidothers [pweight=weight]
estimates store M1
outreg2 [M1] using "XXX" 

